Early computer systems were monolithic, single-processor systems that executed only a single task at each point in time. The early computer systems lacked operating systems and basic programming facilities such as assemblers and compilers. During the first several decades of the computer revolution, many of the basic single-system components of computer systems were developed and evolved to produce capable, operating-system-controlled, multi-tasking computer systems. For another decade, rapid evolution of processor technology, data-storage technologies, memory, and communications technologies led to dramatic increases in the capabilities and capacities of single-processor computer systems. Ultimately, however, in order to achieve even greater capabilities and capacities, computer-system designers turned to multi-processor systems and then to more complex, distributed computing systems comprising aggregations of many intercommunicating computer systems. This turn towards distributed computing was facilitated by the development of distributed locking methods for controlling access to distributed computing resources, distributed operating systems, and high-bandwidth electronic communications. During the past few decades, extremely large cloud-computing facilities have been developed and commercialized to the point that computational bandwidth and data-storage capacity are provided to customers of large cloud-computing providers much as electrical power and water are provided to customers of utility companies. Cloud-computing facilities often employ hundreds, thousands, or more networked and often geographically distributed multi-processor servers that are controlled, by virtualization technology, to produce hierarchical layers of virtualized computing facilities.
Virtual data centers and other virtual data structures are generally implemented on large physical distributed computing systems, including computing systems that employ a management sever to manage a large number of remote host systems. When communication between a management server and remote host systems involves wide area networks, communications bottlenecks may arise. Designers and developers of distributed computer systems continue to seek methods and systems for efficient management-server/remote-host information exchange.